This invention relates to an electronic apparatus which is connected to and used together with, for example, an IEEE 1,394 serial bus (hereinafter referred to simply as 1,394 serial bus) and also to a communication speed information collection method, a communication method between electronic apparatus of the type mentioned, and a recording medium.
A communication system has been proposed wherein electronic apparatus such as a personal computer, a hard disk apparatus, a digital video tape recorder and a digital television receiver are connected to each other by a 1,394 serial bus so that packets of a digital video signal, a digital audio signal and a control signal are communicated between the electronic apparatus.
An example of such a communication system as described above is shown in FIG. 8. Referring to FIG. 8, electronic apparatus A to E may be a personal computer, a digital video tape recorder and so forth mentioned above. Ports P of the electronic apparatus A and B, B and C, C and D, and D and E are connected to each other by cables 11, 12, 13 and 14 of a 1,394 serial bus, respectively. In the following description, each of such electronic apparatus may be referred to as node.
As seen from FIG. 8, each of the nodes other than the node C includes, as basic components for communicating with the 1,394 serial bus, a physical layer controller (PHY) 15, a link layer controller (LINK) 16, and a CPU (central processing unit) 17. The node C is only provided with a physical layer controller 15. The physical layer controller 15 has functions of initialization of the bus, encoding/decoding of data, arbitration, outputting/detection of a bias voltage and so forth. The link layer controller 16 has link layer controlling functions such as production/detection of an error correction code, production/detection of a packet and so forth. The CPU 17 has functions of an application layer.
In a communication system which employs a 1,394 serial bus, each node sends out, upon initialization of the bus, a packet called self ID (Self ID) packet to the bus. In a predetermined field of the self ID packet, communication speed information which is available with the physical layer controller 15 of the node itself is inserted.
FIG. 9 illustrates an example of a construction of a self ID packet. Referring to FIG. 9, the self ID packet shown has a length of 4 bytes.times.2 (in the following description, 4 bytes are referred to as 1 quadlet), and a speed code (sp) is inserted in the 17th and 18th bits of the first quadlet. The two bits of the speed code signify S100 (98.304 Mbps) with "00", S100 and S200 (196.608 Mbps) with "01", S100, S200 and S400 (393.216 Mbps) with "10", and "reserved" with "11".
A bus manager in the communication system receives self ID packets of the nodes and produces, using the self ID packets, a speed map indicative of maximum communication speeds between the nodes. FIG. 10 shows an example of a construction of a speed map. Referring to FIG. 10, the speed map shown indicates maximum transfer speeds each between two arbitrary nodes. After completion of initialization of the bus, all nodes can refer to the speed map. When each node tries to communicate with another node, it refers to the speed map to determine a communication speed.
Generally in a communication system, the maximum transfer speed in communication between certain two nodes is limited, where there is a repeating node in the communication route, to a speed which is available with the repeating node.
For example, in a communication system which employs a 1,394 serial bus, repeating is performed by a physical layer controller. The physical layer controller transmits and receives a packet on the 1,394 serial bus. In this instance, also a packet which is not destined for the pertaining node is propagated to an adjacent node, that is, repeated. While the communication speed of each node depends upon the capacity of its link layer controller, when the node repeats a packet, the communication speed does not rely upon the capacity of the link layer controller.
When communication is performed between two nodes, there is no problem if the maximum communication speed of the link layer controller of each of the nodes is equal to or higher than the maximum communication speed of the link layer controller. However, if the maximum communication speed of the link layer controller is lower than the maximum communication speed of the physical layer controller, then a packet received by the node is lost on the level of the link layer.
In asynchronous communication on a 1,394 serial bus, a node on the transmission side of a packet can discriminate an error when a node of the reception side of the packet does not send back ACK (acknowledge). However, in isochronous communication, since communication of the broadcasting type in which ACK is not returned is performed, an error can be discriminated neither by the transmission side nor by the reception side.
Such an error as mentioned above can be eliminated if a maximum communication speed for the physical layer controller is determined based on performances of the link layer controllers of all nodes. However, this gives rise to necessity to lower the communication speed relying upon a repeating node even if two nodes which originally communicate with each other have higher performances.